Software for managing a virtualized data center is responsible for monitoring physical hosts and virtual machines (VMs) running in the physical hosts and, further, for performing management operations such as provisioning and configuration tasks. One example of such management software is vSphere™ available from VMware, Inc. of Palo Alto, Calif.
Provisioning is the process of creating and deploying a VM, including assigning and configuring resources, such as processors, memory, network, and disk storage, associated with the VM. When deploying multiple VMs with similar characteristics, provisioning may be more efficient by using a process called cloning. With cloning, a VM is first provisioned according to a specific configuration. The VM is then cloned one or more times to create multiple VMs with the same configuration as the original VM. Cloning a virtual machine can save time when deploying many similar virtual machines, as compared with creating and configuring each virtual machine individually.
One form of cloning creates a complete and independent copy of a virtual machine, referred to herein as full cloning. Another form of cloning creates a copy of a virtual machine that shares virtual disks with the parent virtual machine in an ongoing manner, referred to herein as linked cloning. A linked clone is a duplicate of a parent virtual machine that uses the same base disk as the original, with a chain of “redo logs” (also known as “delta disks”) to track the differences between the original and the linked clone. Linked cloning conserves disk space, as compared with a full clone, and allows multiple virtual machines to use the same software installation. In addition, creating a clone of a virtual machine using linked cloning typically is much faster as compared to creating a clone using full cloning.
One disadvantage of linked cloning is performance degradation when the chain of redo logs increases in length, or where multiple disk chains branch from the same base disk forming a virtual disk tree. The disadvantage may be especially noticeable in a cloud computing environment, where a virtual disk tree may contain hundreds of linked clones and support hundreds of VMs.